package com.jkzx.view;

import android.content.Context;
import android.graphics.PointF;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class MyViewPage2 extends ViewPager{
	private float mLastMotionX;

	public MyViewPage2(Context context) {
		super(context);
	}

	public MyViewPage2(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	//	@Override
//	public boolean onInterceptTouchEvent(MotionEvent ev) {
//		final int action = ev.getAction();
//		final float x = ev.getX();
//	
//		switch (action) {
//		case MotionEvent.ACTION_DOWN:
//			mLastMotionX = x;
//			break;
//	
//		case MotionEvent.ACTION_MOVE:
//			final float dx = x - mLastMotionX;
//			if(dx>0&&getCurrentItem()==0){ 
//				System.out.println("dx>0");
//				return false;
//			}else if(dx<0&&getCurrentItem()==getChildCount()-1){
//				System.out.println("dx>0");
//				return false;
//			}
//			break;
//		}
//	return  true;
//}
	@Override
	public boolean onInterceptTouchEvent(MotionEvent arg0) {
		System.out.println("MyViewPage2 onInterceptTouchEvent");
		// TODO Auto-generated method stub
		//当拦截触摸事件到达此位置的时候，返回true，
		//说明将onTouch拦截在此控件，进而执行此控件的onTouchEvent
		return true;
	}

	/** 触摸时按下的点 **/
	PointF downP = new PointF();
	/** 触摸时当前的点 **/
	PointF curP = new PointF();
	@Override
	public boolean onTouchEvent(MotionEvent arg0) {
		System.out.println("MyViewPage2 onTouchEvent");
		// TODO Auto-generated method stub
		//每次进行onTouch事件都记录当前的按下的坐标
		curP.x = arg0.getX();
		curP.y = arg0.getY();

		if(arg0.getAction() == MotionEvent.ACTION_DOWN){
			//记录按下时候的坐标
			//切记不可用 downP = curP ，这样在改变curP的时候，downP也会改变
			downP.x = arg0.getX();
			downP.y = arg0.getY();
			//此句代码是为了通知他的父ViewPager现在进行的是本控件的操作，不要对我的操作进行干扰
			getParent().requestDisallowInterceptTouchEvent(true);
		}

		if(arg0.getAction() == MotionEvent.ACTION_MOVE){
			//此句代码是为了通知他的父ViewPager现在进行的是本控件的操作，不要对我的操作进行干扰
			getParent().requestDisallowInterceptTouchEvent(true);
		}

		if(arg0.getAction() == MotionEvent.ACTION_UP){
			//在up时判断是否按下和松手的坐标为一个点
			//如果是一个点，将执行点击事件，这是我自己写的点击事件，而不是onclick
			if(downP.x==curP.x && downP.y==curP.y){
//	                onSingleTouch();
				return true;
			}
		}

		return super.onTouchEvent(arg0);
	}
}